package exception.userdefined;

import javax.naming.InsufficientResourcesException;

public class ExceptionTest {
	
	//회원가입 처리 메소드
	//매개변수 : 가입시 필요한 회원 정보
	//가입 처리 조건 : id는 6글자 이상
	public void joinMember(String id, String password, String name) throws InvaildIdException{
		if(id == null || id.length() < 6){
			throw new InvaildIdException("잘못된 아이디가 입력되어 가입이 안됨");
			//System.out.println("가입안됨");
			//return;//여기서 리턴을 쓰면 분명히 가입은 안된 상황인데 예를 호출한 얘는 정상적으로 로직이 마쳐진 걸로 인식한다. 이게 문제다. 
		}
		
		
		//가입처리 로직
		System.out.println(id+","+password+","+name+"으로 가입되었습니다.");
		}
	
	//주문 처리 메소드
	//매개 변수 : 주문량
	//주문 조건 : 주문량이 재고량보다 많으면 안됨.
	public void order(int orderAmount) throws orderAmountException {
		
		int stockAmount = 20;//재고량
		if(orderAmount > stockAmount){
			throw new orderAmountException("주문량이 재고량을 초과했습니다.");
		}
		//주문처리 로직
		System.out.println(orderAmount + "개 만큼 주문처리가 성공했습니다.");
	}
	
	
	
	public static void main(String[] args) {
		ExceptionTest et = new ExceptionTest();
		try{
		et.joinMember("id-1", "1111111", "김철수");
		}catch (InvaildIdException e){
			String msg = e.getMessage();//Throwalb 메소드
			System.out.println("예외가 발생했다."+msg);
		}
		
		System.out.println("-----------------------------");
		
		try{
			et.order(21);
		} catch(orderAmountException o){
			String aaa = o.getMessage();
			System.out.println("문제 발생"+"  : "+ aaa);
			
			int stock = o.getStockAmount();
			try{
				et.order(stock);//재고량 만큼 주문
				
			}catch(orderAmountException e1){
				e1.printStackTrace();
			}
		}
	}
}
